home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / netmail / rnr214.zip / NWID.PAS < prev    next >
Pascal/Delphi Source File  |  1995-07-01  |  1KB  |  80 lines

  1. unit nwid;  {get NetWare(TM) userid}
  2.  
  3. interface
  4.  
  5. uses dos;
  6.  
  7. function getnetwareid: string;
  8.  
  9. implementation
  10.  
  11. {$F+}
  12.  
  13. function getnetwareid: string;
  14.  
  15. type
  16.   requestbuffer=record
  17.     requestlength: word;
  18.     subfunction: byte;
  19.     connectnum: byte;
  20.   end;
  21.  
  22.   replybuffer=record
  23.     replylength: word;
  24.     objectid: longint;
  25.     objecttype: word;
  26.     objectname: array[1..48] of byte;
  27.     logintime: array[1..7] of byte;
  28.   end;
  29.  
  30. var
  31.   regs: registers;
  32.   connectnum: byte;
  33.   request: requestbuffer;
  34.   reply: replybuffer;
  35.  
  36.   i: integer;
  37.  
  38.   result: string;
  39.  
  40. begin
  41.   result := '';
  42.  
  43.   regs.ah := $dc;
  44.   msdos(regs);
  45.   connectnum := regs.al;
  46.  
  47.   if connectnum<>0 then
  48.     begin
  49.       request.requestlength := 2;
  50.       request.subfunction := $16;
  51.       request.connectnum := connectnum;
  52.  
  53.       reply.replylength := 61;
  54.  
  55.       regs.ah := $e3;
  56.  
  57.       regs.ds := seg(request);
  58.       regs.si := ofs(request);
  59.  
  60.       regs.es := seg(reply);
  61.       regs.di := ofs(reply);
  62.  
  63.       msdos(regs);
  64.  
  65.       i := 1;
  66.       while i<=48 do
  67.         begin
  68.           if reply.objectname[i]=0 then
  69.             i := 48
  70.           else
  71.             result := result+(chr(reply.objectname[i]));
  72.           inc(i);
  73.         end;
  74.     end;
  75.  
  76.   getnetwareid := result;
  77. end;
  78.  
  79. end.
  80.